﻿using Kanban.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Kanban.Repository
{
    public class LogTarefaRepository : RepositoryBase
    {

        public void RemoverMovimentoAnterior(int idTarefa)
        {
            var parametros = new Dictionary<string, object>();
            parametros.Add("Mnemonico", LogTarefaAcao.Mover);
            parametros.Add("IdTarefa", idTarefa);

            string sql = @"DECLARE @IdLogAcao INT

                            SELECT @IdLogAcao = Id FROM [PREFIXO_TABELA]LogAcao WHERE Mnemonico = @Mnemonico

                            IF @IdLogAcao IS NULL BEGIN
                                RAISERROR ('Mnemônico da ação inválido.',  10,  1);
                                --THROW 50001, 'Mnemônico da ação inválido.', 1;
                            END

                            UPDATE [PREFIXO_TABELA]LogTarefa SET Excluido = 1 WHERE IdTarefa = @IdTarefa AND IdLogAcao = @IdLogAcao AND CONVERT(VARCHAR(10), DataCadastro, 101) = CONVERT(VARCHAR(10), GETDATE(), 101)
                            ";

            this.Executar(sql, parametros);
        }

        public void Adicionar(LogTarefa logTarefa)
        {

            var parametros = new Dictionary<string, object>();
            parametros.Add("DataCadastro", logTarefa.DataCadastro);
            parametros.Add("IdTarefa", logTarefa.IdTarefa);
            parametros.Add("IdUsuario", logTarefa.IdUsuario);
            parametros.Add("MnemonicoAcao", logTarefa.MnemonicoAcao);
            parametros.Add("ValorAntigo", logTarefa.ValorAntigo);
            parametros.Add("ValorNovo", logTarefa.ValorNovo);


            string sql = @"DECLARE @IdLogAcao INT

                            SELECT @IdLogAcao = Id FROM [PREFIXO_TABELA]LogAcao WHERE Mnemonico = @MnemonicoAcao

                            IF @IdLogAcao IS NULL BEGIN
                                RAISERROR ('Mnemônico da ação inválido.',  10,  1);
                                --THROW 50001, 'Mnemônico da ação inválido', 1;
                            END

                            INSERT INTO [PREFIXO_TABELA]LogTarefa(IdTarefa, IdUsuario, IdLogAcao, DataCadastro, ValorAntigo, ValorNovo)
                            VALUES(@IdTarefa, @IdUsuario, @IdLogAcao, @DataCadastro, @ValorAntigo, @ValorNovo)

                            SELECT @@IDENTITY
                            ";
            

            int id = Convert.ToInt32(this.Adicionar(sql, parametros));

            logTarefa.Id = id;
        }

    }
}
